/**
* Copyright (c) By zengqh.
*
* This program is just for fun or demo, in the hope that it  
* will be useful, you can redistribute it and/or modify freely.
*
* Time: 2012/07/20
* File: EffectService.h
* Blog: http://www.cnblogs.com/zengqh/
**/

#ifndef EffectService_h__
#define EffectService_h__

#include "../Core/Core.h"
#include "../Core/Declare.h"
#include "MaterialData.h"
#include "LightData.h"
#include "Effect.h"

class EffectService
{
public:
	EffectService(Effect* effect);
	virtual ~EffectService();

	virtual void applyMatrix() = 0;
	virtual void applyMaterial() = 0;
	virtual void applyLight() = 0;
	virtual void active() = 0;

	virtual s32  getVertexHandle() = 0;
	virtual s32  getNormalHandle() = 0;
	virtual s32  getTexcoordHandle() = 0;
	virtual s32  getColorHandle() = 0;

protected:
	Effect*		_effect;
};

#endif    /* EffectService_h__ */